home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / IDLIncludes / Kernel.idl < prev    next >
Text File  |  1996-05-01  |  8KB  |  287 lines

  1. /*
  2.      File:        Kernel.idl
  3.  
  4.      Contains:    Kernel Interfaces
  5.  
  6.      Version:    Technology:    System 8
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __KERNEL_IDL__
  19. #define __KERNEL_IDL__
  20.  
  21. #include <somobj.idl>
  22. #include <somcls.idl>
  23.  
  24. #ifndef __ERRORS_IDL__
  25. #include <Errors.idl>
  26. #endif
  27. #ifndef __MACHINEEXCEPTIONS_IDL__
  28. #include <MachineExceptions.idl>
  29. #endif
  30. #ifndef __TIMING_IDL__
  31. #include <Timing.idl>
  32. #endif
  33. #ifndef __TYPES_IDL__
  34. #include <Types.idl>
  35. #endif
  36.  
  37. #ifdef __SOMIDL__
  38.  
  39. #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
  40. /* Kernel basics*/
  41. typedef OpaquePtr                AddressSpaceID;
  42.  
  43. typedef OpaquePtr                IOPreparationID;
  44.  
  45. typedef OpaquePtr                SoftwareInterruptID;
  46.  
  47. typedef OpaquePtr                TaskID;
  48.  
  49. typedef OpaquePtr                TimerID;
  50.  
  51. /* Tasking*/
  52. typedef UInt32                    ExecutionLevel;
  53.  
  54. typedef OpaquePtr SoftwareInterruptHandler;
  55. typedef OpaquePtr SecondaryInterruptHandler2;
  56. /* Memory System basics*/
  57. typedef SOMLargeStruct            LogicalAddressRange;        /* Derived from a struct of 8 bytes in size */
  58.  
  59. typedef OpaquePtr                LogicalAddressRangePtr;        /* Substituted OpaquePtr for ``LogicalAddressRange*'' */
  60.  
  61. typedef SOMLargeStruct            PhysicalAddressRange;        /* Derived from a struct of 8 bytes in size */
  62.  
  63. typedef OpaquePtr                PhysicalAddressRangePtr;    /* Substituted OpaquePtr for ``PhysicalAddressRange*'' */
  64.  
  65. /* For PrepareMemoryForIO and CheckpointIO*/
  66. typedef OptionBits                IOPreparationOptions;
  67.  
  68. typedef OptionBits                IOPreparationState;
  69.  
  70. typedef SOMLargeStruct            AddressRange;                /* Derived from a struct of 8 bytes in size */
  71.  
  72. /* C's treatment of arrays and array pointers is atypical*/
  73. typedef OpaquePtr                LogicalMappingTablePtr;        /* Substituted OpaquePtr for ``LogicalAddress*'' */
  74.  
  75. typedef OpaquePtr                PhysicalMappingTablePtr;    /* Substituted OpaquePtr for ``PhysicalAddress*'' */
  76.  
  77. typedef OpaquePtr                AddressRangeTablePtr;        /* Substituted OpaquePtr for ``AddressRange*'' */
  78.  
  79. typedef SOMLargeStruct            MultipleAddressRange;        /* Derived from a struct of 8 bytes in size */
  80.  
  81. /*
  82.  Separate C definition so that union has a name.  A future version of the interfacer
  83.  tool will allow a name (that gets thrown out in Pascal and Asm).
  84. */
  85. typedef SOMLargeStruct            IOPreparationTable;            /* Derived from a struct of 56 bytes in size */
  86.  
  87. typedef OptionBits                IOCheckpointOptions;
  88.  
  89. /* For SetProcessorCacheMode*/
  90. typedef UInt32                    ProcessorCacheMode;
  91.  
  92. /* For GetPageInformation*/
  93. typedef UInt32                    PageStateInformation;
  94.  
  95. typedef SOMLargeStruct            PageInformation;            /* Derived from a struct of 12 bytes in size */
  96.  
  97. typedef OpaquePtr                PageInformationPtr;            /* Substituted OpaquePtr for ``PageInformation*'' */
  98.  
  99. #endif
  100. #if FOR_SYSTEM8_PREEMPTIVE
  101. typedef OpaquePtr                AreaReservationID;
  102.  
  103. typedef OpaquePtr                BackingObjectID;
  104.  
  105. typedef OpaquePtr                EventGroupID;
  106.  
  107. typedef OpaquePtr                MessageID;
  108.  
  109. typedef OpaquePtr                ObjectID;
  110.  
  111. typedef OpaquePtr                PortID;
  112.  
  113. typedef OpaquePtr                ReceiveID;
  114.  
  115. typedef OpaquePtr                KernelProcessID;
  116.  
  117. typedef OpaquePtr                KernelQueueID;
  118.  
  119. /*  System Information  */
  120. typedef SOMLargeStruct            SystemInformation;            /* Derived from a struct of 60 bytes in size */
  121.  
  122. typedef OpaquePtr                SystemInformationPtr;        /* Substituted OpaquePtr for ``SystemInformation*'' */
  123.  
  124. /*  KernelQueue Related Declarations  */
  125. typedef OptionBits                KernelQueueOptions;
  126.  
  127. /*  Event Flag Related Declarations  */
  128. typedef UInt32                    EventGroupMask;
  129.  
  130. typedef UInt32                    EventFlagOperation;
  131.  
  132. typedef SOMLargeStruct            KernelNotification;            /* Derived from a struct of 24 bytes in size */
  133.  
  134. typedef OpaquePtr                KernelNotificationPtr;        /* Substituted OpaquePtr for ``KernelNotification*'' */
  135.  
  136. /*  Task Related Declarations  */
  137. typedef OSType                    KernelProcessName;
  138.  
  139. typedef OSType                    TaskName;
  140.  
  141. typedef OpaquePtr TaskProc;
  142. typedef UInt32                    TaskStorageIndex;
  143.  
  144. typedef OpaquePtr                TaskStorageValue;            /* Substituted OpaquePtr for ``void*'' */
  145.  
  146. typedef UInt32                    TaskRelationship;
  147.  
  148. typedef OptionBits                SetTaskPriorityOptions;
  149.  
  150. typedef OptionBits                TaskOptions;
  151.  
  152. /* Priorities are used by CreateTask, SetTaskPriority, and AcceptMessage. */
  153. typedef OptionBits                TaskPriority;
  154.  
  155. typedef OptionBits                TerminateOptions;
  156.  
  157. typedef OSType                    SchedulerState;
  158.  
  159. typedef SOMLargeStruct            TaskInformation;            /* Derived from a struct of 60 bytes in size */
  160.  
  161. typedef OpaquePtr                TaskInformationPtr;            /* Substituted OpaquePtr for ``TaskInformation*'' */
  162.  
  163. typedef OptionBits                KernelProcessOptions;
  164.  
  165. typedef SOMLargeStruct            KernelProcessInformation;    /* Derived from a struct of 12 bytes in size */
  166.  
  167. typedef OpaquePtr                KernelProcessInformationPtr; /* Substituted OpaquePtr for ``KernelProcessInformation*'' */
  168.  
  169. /* Timer related declarations */
  170. typedef OptionBits                TimerOptions;
  171.  
  172. /*  Address Space Management related declarations  */
  173. /* General definitions*/
  174. typedef OptionBits                AreaOptions;
  175.  
  176. typedef OptionBits                InterspaceCopyOptions;
  177.  
  178. typedef UInt32                    AreaUsage;
  179.  
  180. typedef UInt32                    MemoryAccessLevel;
  181.  
  182. typedef UInt64                    BackingAddress;
  183.  
  184. typedef UInt64                    BackingLength;
  185.  
  186. /*    For GetSpaceInformation*/
  187. typedef SOMLargeStruct            SpaceInformation;            /* Derived from a struct of 12 bytes in size */
  188.  
  189. typedef OpaquePtr                SpaceInformationPtr;        /* Substituted OpaquePtr for ``SpaceInformation*'' */
  190.  
  191. /*    For GetAreaInformation*/
  192. typedef SOMLargeStruct            AreaInformation;            /* Derived from a struct of 44 bytes in size */
  193.  
  194. typedef OpaquePtr                AreaInformationPtr;            /* Substituted OpaquePtr for ``AreaInformation*'' */
  195.  
  196. /*    For Memory Reservations*/
  197. typedef OptionBits                ReservationOptions;
  198.  
  199. /*    For GetReservationInformation*/
  200. typedef SOMLargeStruct            ReservationInformation;        /* Derived from a struct of 16 bytes in size */
  201.  
  202. typedef OpaquePtr                ReservationInformationPtr;    /* Substituted OpaquePtr for ``ReservationInformation*'' */
  203.  
  204. /*    For ControlPagingForRange*/
  205. typedef UInt32                    PageControlOperation;
  206.  
  207. /* For ReleaseData*/
  208. typedef OptionBits                ReleaseDataOptions;
  209.  
  210. /*  Message related declarations  */
  211. typedef UInt32                    MessageType;
  212.  
  213. /* Kernel Message Types*/
  214. /*    Options for CreatePort*/
  215. typedef OptionBits                PortOptions;
  216.  
  217. /*    Options for CreateObject*/
  218. typedef OptionBits                ObjectOptions;
  219.  
  220. /*    Options for LockObject*/
  221. typedef OptionBits                ObjectLockOptions;
  222.  
  223. /*    Options for SetObjectInformation;*/
  224. typedef OptionBits                SetObjectOptions;
  225.  
  226. /*  Message System Options  */
  227. typedef OptionBits                SendOptions;
  228.  
  229. typedef OptionBits                ReceiveOptions;
  230.  
  231. typedef OptionBits                AcceptOptions;
  232.  
  233. /*  Message Definition (Given to receiver or acceptor)  */
  234. typedef SOMLargeStruct            MessageControlBlock;        /* Derived from a struct of 64 bytes in size */
  235.  
  236. typedef OpaquePtr                MessageControlBlockPtr;        /* Substituted OpaquePtr for ``MessageControlBlock*'' */
  237.  
  238. typedef SOMLargeStruct            MessageInformation;            /* Derived from a struct of 12 bytes in size */
  239.  
  240. typedef OpaquePtr                MessageInformationPtr;        /* Substituted OpaquePtr for ``MessageInformation*'' */
  241.  
  242. /*  Message Accept proc used to receive a message  */
  243. typedef OpaquePtr MessageAcceptProc;
  244. /*    Version for GetPortInformation  */
  245. /*  Buffer used to return message port information  */
  246. typedef SOMLargeStruct            PortInformation;            /* Derived from a struct of 48 bytes in size */
  247.  
  248. typedef OpaquePtr                PortInformationPtr;            /* Substituted OpaquePtr for ``PortInformation*'' */
  249.  
  250. #endif
  251. #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
  252. /*  Tasks  */
  253. /*  Software Interrupts  */
  254. /*  Completion Routines  */
  255. /*  Secondary Interrupts  */
  256. /*  Timers  */
  257. /*  IO related Operations  */
  258. /*  Memory Operations  */
  259. /*  Processor Cache Related  */
  260. #endif
  261. #if FOR_SYSTEM8_PREEMPTIVE
  262. /*  Queues  */
  263. /*  Event Flag Related Operations  */
  264. /*  KernelProcess Related Operations  */
  265. /*  Task Related Operations  */
  266. /* Secondary Interrupt Handlers */
  267. /*  Timers  */
  268. /*  Address Space Management  */
  269. /*  Area Management  */
  270. /*  Processor Cache Related  */
  271. /*  Paging control operations  */
  272. /*  Message Port Management  */
  273. /*  Message Object Management  */
  274. /*  Message Transaction Operations  */
  275. /*  Miscellaneous Messaging operations  */
  276. /*  Miscellaneous System operations  */
  277. /*    Notifications  */
  278. #endif
  279. #if FOR_SYSTEM8_PREEMPTIVE
  280. /* These are defined in Memory for System 7 */
  281. #endif
  282.  
  283. #endif /* __SOMIDL__ */
  284.  
  285. #endif /* __KERNEL_IDL__ */
  286.  
  287.